package br.com.dponto.web;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.dponto.contratado.Contratado;
import br.com.dponto.contratante.Contratante;
import br.com.dponto.contratante.ContratanteRN;
import br.com.dponto.endereco.Endereco;
import br.com.dponto.endereco.EnderecoRN;
import br.com.dponto.usuario.Usuario;
import br.com.dponto.usuario.UsuarioRN;
import br.com.dponto.util.ContextoUtil;

@ManagedBean(name = "contratanteBean")
@RequestScoped
public class ContratanteBean {

	private Contratante contratante = new Contratante();
	private Usuario usuario = new Usuario();
	private Endereco endereco = new Endereco();
	private Contratado contratado = new Contratado();
	private List<Contratado> lista = null;
	private String confirmaSenha;
	private String mes;

	public String novo() {
		this.usuario = new Usuario();
		return "cad_contratante";
	}

	public Usuario usuarioLogado() {
		ContextoBean contextoBean = ContextoUtil.getContextoBean();
		Usuario usuario = contextoBean.getUsuarioLogado();
		return usuario;
	}

	public String cancelar() {
		this.contratante = null;
		this.usuario = null;
		this.endereco = null;
		return "principal";
	}

	public String salvar() {
		FacesContext context = FacesContext.getCurrentInstance();
		this.usuario.setAtivo(true);
		String senha = this.usuario.getSenha();

		if (!senha.equals(this.confirmaSenha)) {
			FacesMessage msg = new FacesMessage(
					"A senha não foi confirmada corretamente");
			context.addMessage(null, msg);
			return null;
		}

		UsuarioRN usuarioRN = new UsuarioRN();
		usuario.setNome(this.contratante.getNome());
		this.contratante.setUsuario(usuario);
		this.endereco.setUsuario(usuario);
		usuarioRN.salvar(usuario);

		EnderecoRN enderecoRN = new EnderecoRN();
		enderecoRN.salvar(this.endereco);
		ContratanteRN contratanteRN = new ContratanteRN();
		contratanteRN.salvar(this.contratante);

		return "/restrito/principal";
	}

	public String cadastrarFuncionario() {
		
		return null;
	}
	public List<Contratado> getLista() {
		/*
		 * this.lista = new ArrayList<Contratado>(); ContratadoRN contratadoRN =
		 * new ContratadoRN(); this.lista =
		 * contratadoRN.buscarPorContratante(this.contratante.getCodigo());
		 */
		return lista;
	}

	public Contratado getContratado() {
		return contratado;
	}

	public void setContratado(Contratado contratado) {
		this.contratado = contratado;
	}

	public Contratante getContratante() {
		return contratante;
	}

	public void setContratante(Contratante contratante) {
		this.contratante = contratante;
	}

	public String getConfirmaSenha() {
		return confirmaSenha;
	}

	public void setConfirmaSenha(String confirmaSenha) {
		this.confirmaSenha = confirmaSenha;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public String getMes() {
		return mes;
	}

	public void setMes(String mes) {
		this.mes = mes;
	}
	
	

}
